草庐IT

SQL优化: Xml or Delimited String

全部标签

java - 如何为长生命周期对象优化 Java gc

我的Java应用程序维护着一个可以增长到10GB的内部缓存。过期策略设置为30分钟或达到内存阈值时(我正在使用本地ehcache)。很明显,在30分钟后,所有缓存的对象都将在旧的gen中,并且需要完整的gc来收集它们。至于现在停止世界暂停可以达到6秒,我想减少它。平均对象大小为500k,但最多可达1兆,因此我们谈论的是10000-20000个缓存对象(实际上是字节数组)。GC优化的最佳策略是什么?我知道我可以脱离堆,但这是最后的解决方案。谢谢! 最佳答案 10GB缓存不是你应该在堆中做的事情。使用ByteBuffers用于缓存。对象

java - 从 PL/SQL 调用/使用 JMS

是否可以从PL/SQL调用/使用JAVA消息服务(JMS)?我知道我们可以从pl/SQL调用java,但是调用java不同于调用JMS队列或JMS主题,因为JMS依赖于JNDI资源命名,当我们使用基于JNDI的资源时,我们首先必须将它们部署在一些然后使用J2EE容器。所以调用JMS总是涉及部署在一些J2EE容器上,然后利用它的功能。回到我之前提到的问题,我想从PL/SQL使用JMS以及它如何处理部署和基于JNDI的资源……? 最佳答案 您的问题中有两个问题需要单独解决:JNDI不,调用JMS服务不依赖于JNDI资源,也不需要将JMS

java - Hibernate: hibernate.hbm2ddl.auto=update 显示生成的sql

我希望传递给Hibernate的SessionFactoryhibernate.hbm2ddl.auto=update并在日志文件中查看生成的sql语句。是否有可能没有java编码(知道如何使用SchemaExport实现结果,但希望hibernate有“inbox”解决方案) 最佳答案 您可以使用System.out设置日志记录SessionFactorysf=newConfiguration().setProperty("hibernate.show_sql","true")或log4jlog4j.logger.org.hibe

java - 优化 SSE 代码

我目前正在为需要一些性能改进的Java应用程序开发C模块(请参阅Improvingperformanceofnetworkcoding-encoding了解背景信息)。我已经尝试使用SSE-intrinsics优化代码,它的执行速度比Java版本(~20%)快一些。然而,它仍然不够快。不幸的是,我在优化C代码方面的经验有些有限。因此,我很想获得一些关于如何改进当前实现的想法。构成热点的内部循环如下所示:for(i=0;i 最佳答案 即使不查看程序集,我也能立即看出瓶颈来自4元素收集内存访问和_mm_set_epi32打包操作。在内部

java - 这是从日期获取 UTC 的 java.sql.Timestamp 的正确方法吗?

我开发了一个SonarQube插件,为了满足我的一个需求,我需要将项目的分析日期存储为SQLTIMESTAMP(请注意:TIMESTAMP,不是TIMESTAMPWITHTIMEZONE)。这是我目前的做法://IntheSonarQubeSensor//.getAnalysisDate()returnsajava.util.DatefinalInstantinstant=module.getAnalysisDate().toInstant();//TimestampatUTCfromtheInstantfinalLocalDateTimedt=LocalDateTime.fromin

java - 具有不同 sql 查询的批处理 preparedstatement

我找到了现有问题similar对于这个实际上没有明确答案的问题。带有一个sql查询的普通批准备语句看起来像这样:privatestaticvoidbatchInsertRecordsIntoTable()throwsSQLException{ConnectiondbConnection=null;PreparedStatementpreparedStatement=null;StringinsertTableSQL="INSERTINTODBUSER"+"(USER_ID,USERNAME,CREATED_BY,CREATED_DATE)VALUES"+"(?,?,?,?)";try{

java - Java 中的 ExecuteUpdate sql 语句不起作用

我正在学习如何将SQL与Java结合使用。我已成功安装JDBC驱动程序,并且能够从数据库中读取记录并将其打印在屏幕上。我的问题发生在尝试执行更新或插入语句时,但没有任何反应。这是我的代码:问题所在的方法publicstaticvoidupdateSchools(ArrayListnewSchool){try{openDatabase();stmt=c.createStatement();intnumberOfRows=stmt.executeUpdate("UPDATEschoolsSETaddress='abc'WHEREabbreviation='2';");System.out.

java - 是否有行为类似于自动 ID SQL 表的 Java 集合(或类似集合)?

请注意,我实际上并没有在这里对数据库做任何事情,所以ORM工具可能不是我要找的东西。我想要一些容器,每个容器都包含一些对象,一个容器中的所有对象都属于同一类。容器应该显示数据库表的一些行为,即:允许将对象的字段之一用作唯一键,即。e.在该字段中具有相同值的其他对象不会添加到容器中。接受新对象后,容器应发出一个数字ID,该ID返回给插入方法的调用者。容器不应在请求“重复条目”时抛出错误,而应跳过插入并返回已存在对象的键。现在,我将编写一个通用容器类,它接受实现接口(interface)的对象以获取键字段的值,并使用以这些值作为键值的HashMap作为实际存储类。是否有更好的方法使用现有的

java - 如何创建 oracle.sql.ARRAY 对象?

这个问题和我原来的问题有关HowtoreturnanarrayfromJavatoPL/SQL?,但更具体。我一直在读OracleDatabaseJDBCDeveloper'sGuide和CreatingARRAYobjectsServer-SideInternalDriveroracle.jdbc.OracleConnectionoracle.jdbc.OracleDriver但我仍然没有写出可以使用创建ARRAY的最少代码ARRAYarray=oracle.jdbc.OracleConnection.createARRAY(sql_type_name,elements);按照Cre

java - 如何配置 Spring Controller 和/或 JAXB 以帮助防止 SQL/XSS 注入(inject)

我在Spring中有一个Controller,其方法如下所示@RequestMapping(value="/v1/something",method=RequestMethod.POST,headers="content-type=application/xml")@Validpublicvoidsomething(@RequestBodyfinalSomeBodymyDto.....我想确保请求主体不包含任何SQL或Javascript字符,以帮助避免SQL注入(inject)、XSS攻击等。JAXB是否已处理该场景?我正在考虑编写一个过滤器,但我只能读取一次请求正文?有什么建议吗?